Machine Learning - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) মেশিন লার্নিং মডেলের টিউনিং এবং অপ্টিমাইজেশন |
144
144

Hyperparameter Tuning হল মেশিন লার্নিং মডেলগুলির দক্ষতা বাড়ানোর একটি গুরুত্বপূর্ণ প্রক্রিয়া। এটি মডেলের hyperparameters-কে অপটিমাইজ করার প্রক্রিয়া, যা মডেল প্রশিক্ষণ বা পারফরম্যান্সের জন্য গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার। Hyperparameters হল সেই প্যারামিটারগুলি যা মডেল ট্রেনিংয়ের আগে নির্ধারণ করতে হয়, যেমন মডেলের আর্কিটেকচার, লার্নিং রেট, ন্যূনতম ব্যাচ সাইজ, এবং ড্রপআউট রেট।

এই tuning প্রক্রিয়া দুটি প্রধান পদ্ধতিতে করা হয়: Grid Search এবং Random Search


১. Grid Search

Grid Search হল একটি exhaustive (সম্পূর্ণ) অনুসন্ধান কৌশল যেখানে বিভিন্ন hyperparameter এর একটি নির্দিষ্ট মানের জন্য মডেল প্রশিক্ষণ করা হয় এবং তারপরে সেরা কম্বিনেশন নির্বাচন করা হয়। এর মধ্যে আপনি যেসব hyperparameters ব্যবহার করতে চান, তাদের সব সম্ভাব্য মানের একটি গ্রিড তৈরি করেন এবং সেই অনুযায়ী মডেলটি প্রশিক্ষিত হয়।

কিভাবে কাজ করে:

  1. প্রথমে আপনি যেসব hyperparameters পরীক্ষা করতে চান, তাদের সম্ভাব্য মান নির্ধারণ করেন।
  2. পরবর্তী ধাপে, grid search প্রতিটি কম্বিনেশনে মডেলটি প্রশিক্ষিত করে এবং সেরা পারফরম্যান্স প্রদানকারী কম্বিনেশনটি নির্বাচন করা হয়।

উদাহরণ:

ধরা যাক, আমাদের একটি মডেল এবং দুইটি hyperparameter (learning_rate এবং batch_size) পরীক্ষা করতে হবে।

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

# মডেল
model = RandomForestClassifier()

# Hyperparameter grid তৈরি
param_grid = {
    'n_estimators': [100, 200, 300],
    'max_depth': [10, 20, 30],
    'min_samples_split': [2, 5, 10]
}

# GridSearchCV চালানো
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=3, n_jobs=-1, verbose=2)

# মডেল প্রশিক্ষণ
grid_search.fit(X_train, y_train)

# সেরা প্যারামিটার কম্বিনেশন
print(f"Best Parameters: {grid_search.best_params_}")

GridSearchCV সমস্ত সম্ভাব্য প্যারামিটার কম্বিনেশন পরীক্ষা করবে এবং সেরা পারফরম্যান্সের জন্য উপযুক্ত কম্বিনেশন নির্বাচন করবে।

সুবিধা:

  • সমস্ত সম্ভব সমন্বয় (combinations) পরীক্ষা করে, সুতরাং এটি সবথেকে ভালো প্যারামিটার নির্বাচন করে।
  • মডেলটির পারফরম্যান্সের ওপর নির্ভর করে সবচেয়ে উপযুক্ত hyperparameters প্রদান করতে পারে।

সীমাবদ্ধতা:

  • Computationally expensive, বিশেষত যখন আপনার কাছে অনেক hyperparameter থাকে এবং তাদের জন্য অনেক মান থাকে।
  • সময়সাপেক্ষ।

২. Random Search

Random Search হল একটি সমাধান যেখানে বিভিন্ন hyperparameters এর সম্ভাব্য মানের মধ্যে থেকে এলোমেলোভাবে কিছু মান নির্বাচন করা হয় এবং তার ওপর মডেলটি প্রশিক্ষিত হয়। এটি exhaustive নয়, তবে অনেক কম সময়ে ভাল ফলাফল পেতে সাহায্য করতে পারে।

কিভাবে কাজ করে:

  1. আপনি যে hyperparameters পরীক্ষা করতে চান, তাদের মধ্যে কিছু পরিসীমা নির্ধারণ করেন।
  2. পরবর্তীতে, Random Search এলোমেলোভাবে কিছু কম্বিনেশন নির্বাচন করে, যার মধ্যে কিছু ভাল ফলাফল পেতে সাহায্য করতে পারে।
  3. এর মাধ্যমে দ্রুত খুঁজে পাওয়া সম্ভব এমন প্যারামিটার কম্বিনেশনগুলি নির্বাচিত করা হয়।

উদাহরণ:

from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
from scipy.stats import randint

# মডেল
model = RandomForestClassifier()

# Hyperparameter distribution তৈরি
param_dist = {
    'n_estimators': randint(100, 1000),
    'max_depth': [10, 20, 30, None],
    'min_samples_split': randint(2, 10)
}

# RandomizedSearchCV চালানো
random_search = RandomizedSearchCV(estimator=model, param_distributions=param_dist, n_iter=100, cv=3, n_jobs=-1, verbose=2)

# মডেল প্রশিক্ষণ
random_search.fit(X_train, y_train)

# সেরা প্যারামিটার কম্বিনেশন
print(f"Best Parameters: {random_search.best_params_}")

RandomizedSearchCV এলোমেলোভাবে নির্দিষ্ট সংখ্যক পরীক্ষা করবে এবং সেরা প্যারামিটার নির্বাচন করবে।

সুবিধা:

  • দ্রুত, কারণ এটি সমস্ত সম্ভব সমন্বয় পরীক্ষা না করে কিছু এলোমেলো কম্বিনেশন পরীক্ষা করে।
  • কম্পিউটেশনাল খরচ কম, বিশেষত যখন hyperparameter এর সংখ্যা বেশি হয়।

সীমাবদ্ধতা:

  • সবসময় সেরা প্যারামিটার কম্বিনেশন খুঁজে পাবে না।
  • কোন কোন এলাকা এড়িয়ে যেতে পারে, যার কারণে এটি কখনও কখনও উপযুক্ত সমাধান প্রদান করতে পারে না।

Grid Search vs Random Search

বৈশিষ্ট্যGrid SearchRandom Search
পদ্ধতিসমস্ত সম্ভাব্য মান পরীক্ষা করা হয়এলোমেলোভাবে কিছু মান পরীক্ষা করা হয়
সম্পূর্ণ পরীক্ষাহ্যাঁ, সমস্ত প্যারামিটার কম্বিনেশন পরীক্ষা করা হয়না, কিছু এলোমেলো নির্বাচন করা হয়
কম্পিউটেশনাল খরচঅনেক বেশি, কারণ সব কম্বিনেশন পরীক্ষা করতে হয়কম, কারণ এলোমেলোভাবে কিছু কম্বিনেশন নির্বাচন করা হয়
পারফরম্যান্সসেরা পারফরম্যান্স দেয়, কারণ সমস্ত কম্বিনেশন পরীক্ষা করা হয়দ্রুত, তবে সেরা ফলাফল না পাওয়া যেতে পারে
গতিধীর, সময়সাপেক্ষদ্রুত, তবে কম্বিনেশন সীমিত

সারাংশ

Hyperparameter tuning হল মডেলটির দক্ষতা বৃদ্ধি করার একটি গুরুত্বপূর্ণ প্রক্রিয়া, এবং Grid Search এবং Random Search হল দুটি জনপ্রিয় কৌশল এই tuning করার জন্য। Grid Search সমস্ত সম্ভব সমন্বয় পরীক্ষা করে এবং সেরা প্যারামিটার নির্বাচন করে, তবে এটি computationally expensive এবং সময়সাপেক্ষ। অন্যদিকে, Random Search দ্রুত এবং কম্পিউটেশনাল খরচ কম হলেও এটি সবসময় সেরা প্যারামিটার প্রদান করতে পারে না।

Content added By
Promotion